package com.lframework.xingyun.basedata.mappers;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.lframework.starter.web.core.mapper.BaseMapper;
import com.lframework.xingyun.basedata.entity.Unit;
import com.lframework.xingyun.basedata.vo.unit.QueryUnitVo;

import java.util.List;
import java.util.Objects;

/**
 * <p>
 * 商品单位 Mapper 接口
 * </p>
 *
 */
public interface UnitMapper extends BaseMapper<Unit> {

    /**
     * 查询列表
     * @param vo
     * @return
     */
    default IPage<Unit> queryPage(QueryUnitVo vo) {
        return defaultJoinWrapper()
                .orderByAsc(Unit::getDisplayNum)
                .eq(Objects.nonNull(vo.getUnitType()), Unit::getUnitType, vo.getUnitType())
                .like(StrUtil.isNotBlank(vo.getUnitName()), Unit::getUnitName, vo.getUnitName())
                .page(PageDTO.of(vo.getPageIndex(), vo.getPageSize()));
    }

    /**
     * 查询列表
     * @param vo
     * @return
     */
    default List<Unit> queryList(QueryUnitVo vo) {
        return defaultJoinWrapper()
                .orderByAsc(Unit::getDisplayNum)
                .eq(Objects.nonNull(vo.getUnitType()), Unit::getUnitType, vo.getUnitType())
                .like(StrUtil.isNotBlank(vo.getUnitName()), Unit::getUnitName, vo.getUnitName())
                .list();
    }
}

